import Hex from '../atcore/hex.js';
import test from './test.js';

test( "HEX");

if( typeof window != "undefined" && location.protocol != "file:" ){

test.async(function readFile( cb ){
    let flash = new Uint8Array(32*1024);

    Hex.parseURL("./Blink.ino.hex", flash, (success)=>{
        cb.assert
            ( flash[0] == 0x0C )
            ( flash[1] == 0x94 )
            ( success );
        cb();
    });
});

}else{

test( function parseString(){

    let flash = new Uint8Array(32*1024);
    Hex.parse( blink, flash );
    this.assert
        ( flash[0] == 0x0C )
        ( flash[1] == 0x94 );
    
} );    

}



const blink = `
:10000000 0C94 5C00 0C94 6E00 0C94 6E00 0C94 6E00 CA
:10001000 0C94 6E00 0C94 6E00 0C94 6E00 0C94 6E00 A8
:10002000 0C94 6E00 0C94 6E00 0C94 6E00 0C94 6E00 98
:10003000 0C94 6E00 0C94 6E00 0C94 6E00 0C94 6E00 88
:10004000 0C94 1501 0C94 6E00 0C94 6E00 0C94 6E00 D0
:10005000 0C94 6E00 0C94 6E00 0C94 6E00 0C94 6E00 68
:10006000 0C94 6E00 0C94 6E00 0000 0000 2400 2700 29
:10007000 2A00 0000 0000 2500 2800 2B00 0404 0404 CE
:10008000 0404 0404 0202 0202 0202 0303 0303 0303 42
:10009000 0102 0408 1020 4080 0102 0408 1020 0102 1F
:1000A000 0408 1020 0000 0008 0002 0100 0003 0407 FB
:1000B000 0000 0000 0000 0000 1124 1FBE CFEF D8E0 B8
:1000C000 DEBF CDBF 21E0 A0E0 B1E0 01C0 1D92 A930 AC
:1000D000 B207 E1F7 0E94 5F01 0C94 CE01 0C94 0000 7E
:1000E000 E1EB F0E0 2491 EDE9 F0E0 9491 E9E8 F0E0 53
:1000F000 E491 EE23 09F4 3BC0 2223 39F1 2330 91F0 3F
:10010000 38F4 2130 A9F0 2230 01F5 24B5 2F7D 12C0 3A
:10011000 2730 91F0 2830 A1F0 2430 B9F4 2091 8000 EC
:10012000 2F7D 03C0 2091 8000 2F77 2093 8000 0DC0 89
:10013000 24B5 2F77 24BD 09C0 2091 B000 2F77 03C0 CC
:10014000 2091 B000 2F7D 2093 B000 F0E0 EE0F FF1F 54
:10015000 EE58 FF4F A591 B491 2FB7 F894 EC91 8111 0F
:10016000 03C0 9095 9E23 01C0 9E2B 9C93 2FBF 0895 A2
:10017000 3FB7 F894 8091 0501 9091 0601 A091 0701 85
:10018000 B091 0801 26B5 A89B 05C0 2F3F 19F0 0196 34
:10019000 A11D B11D 3FBF BA2F A92F 982F 8827 820F 0D
:1001A000 911D A11D B11D BC01 CD01 42E0 660F 771F 5D
:1001B000 881F 991F 4A95 D1F7 0895 8F92 9F92 AF92 09
:1001C000 BF92 CF92 DF92 EF92 FF92 0E94 B800 4B01 54
:1001D000 5C01 88EE C82E 83E0 D82E E12C F12C 0E94 21
:1001E000 B800 DC01 CB01 8819 9909 AA09 BB09 883E 2E
:1001F000 9340 A105 B105 58F0 21E0 C21A D108 E108 E9
:10020000 F108 88EE 880E 83E0 981E A11C B11C C114 71
:10021000 D104 E104 F104 19F7 FF90 EF90 DF90 CF90 43
:10022000 BF90 AF90 9F90 8F90 0895 1F92 0F92 0FB6 3E
:10023000 0F92 1124 2F93 3F93 8F93 9F93 AF93 BF93 6C
:10024000 8091 0101 9091 0201 A091 0301 B091 0401 FC
:10025000 3091 0001 23E0 230F 2D37 20F4 0196 A11D DA
:10026000 B11D 05C0 26E8 230F 0296 A11D B11D 2093 E4
:10027000 0001 8093 0101 9093 0201 A093 0301 B093 C8
:10028000 0401 8091 0501 9091 0601 A091 0701 B091 B0
:10029000 0801 0196 A11D B11D 8093 0501 9093 0601 EF
:1002A000 A093 0701 B093 0801 BF91 AF91 9F91 8F91 E7
:1002B000 3F91 2F91 0F90 0FBE 0F90 1F90 1895 7894 3B
:1002C000 84B5 8260 84BD 84B5 8160 84BD 85B5 8260 5B
:1002D000 85BD 85B5 8160 85BD 8091 6E00 8160 8093 0C
:1002E000 6E00 1092 8100 8091 8100 8260 8093 8100 75
:1002F000 8091 8100 8160 8093 8100 8091 8000 8160 85
:10030000 8093 8000 8091 B100 8460 8093 B100 8091 DF
:10031000 B000 8160 8093 B000 8091 7A00 8460 8093 07
:10032000 7A00 8091 7A00 8260 8093 7A00 8091 7A00 CE
:10033000 8160 8093 7A00 8091 7A00 8068 8093 7A00 4F
:10034000 1092 C100 EDE9 F0E0 2491 E9E8 F0E0 8491 39
:10035000 8823 99F0 90E0 880F 991F FC01 E859 FF4F 1E
:10036000 A591 B491 FC01 EE58 FF4F 8591 9491 8FB7 00
:10037000 F894 EC91 E22B EC93 8FBF C0E0 D0E0 81E0 E9
:10038000 0E94 7000 0E94 DD00 80E0 0E94 7000 0E94 C8
:10039000 DD00 2097 A1F3 0E94 0000 F1CF F894 FFCF 79
:00000001 FF
         
`;